home *** CD-ROM | disk | FTP | other *** search
GW-BASIC | 1984-04-24 | 1.8 KB | 49 lines |
- 10 REM ----------------------- BANNER PROGRAM ---------------------------------
- 20 REM ------------ free software , by Barry Roth, revised 8/08/83 ------------
- 30 CLS:LOCATE ,,1:DEFINT A-Z:DIM P(8,8)
- 40 PRINT " BANNER PROGRAM"
- 50 PRINT "Wilmington, DE - PC Professional Users Group - revised 08/08/83 "
- 60 PRINT "a banner program using ROM dot patterns for the first 128 ASCII characters"
- 70 PRINT:PRINT "enter the character to be used in printing the banner (for example, 'X')"
- 80 PRINT "or press return to use the entered character (i.e. g will be formed with 'g') ";
- 90 A$=INKEY$:IF A$="" THEN GOTO 90
- 100 PRINT A$:PRINT:PRINT "enter the banner scale (1 for 24 characters wide, 2 for 48, or 3 for 72) ";
- 110 B$=INKEY$:IF B$="" THEN GOTO 110
- 120 D=INT(VAL(B$)):IF D<1 OR D>3 THEN GOTO 100
- 130 PRINT D:PRINT:PRINT "get your printer ready and then press any key to start ";
- 140 B$=INKEY$:IF B$="" THEN GOTO 140
- 150 PRINT:PRINT
- 160 PRINT "begin typing your banner (press return at any time to end this program)"
- 170 PRINT "have patience, the printer will take time to print each character"
- 180 PRINT
- 190 DEF SEG=&HF000
- 200 N$=INKEY$:IF N$="" THEN GOTO 200
- 210 IF ASC(N$)=13 THEN GOTO 480
- 220 PRINT N$;
- 230 IF ASC(A$)=13 THEN C$=N$ ELSE C$=A$
- 240 IF D=1 THEN AA$=C$+C$+C$
- 250 IF D=2 THEN AA$=C$+C$+C$+C$+C$+C$
- 260 IF D=3 THEN AA$=C$+C$+C$+C$+C$+C$+C$+C$+C$
- 270 AN=&HFA6E+8*ASC(N$)-1
- 280 FOR I=1 TO 8
- 290 N=PEEK(AN+I)
- 300 IF N>=128 THEN N=N-128:P(I,1)=1 ELSE P(I,1)=0
- 310 IF N>= 64 THEN N=N- 64:P(I,2)=1 ELSE P(I,2)=0
- 320 IF N>= 32 THEN N=N- 32:P(I,3)=1 ELSE P(I,3)=0
- 330 IF N>= 16 THEN N=N- 16:P(I,4)=1 ELSE P(I,4)=0
- 340 IF N>= 8 THEN N=N- 8:P(I,5)=1 ELSE P(I,5)=0
- 350 IF N>= 4 THEN N=N- 4:P(I,6)=1 ELSE P(I,6)=0
- 360 IF N>= 2 THEN N=N- 2:P(I,7)=1 ELSE P(I,7)=0
- 370 IF N>= 1 THEN P(I,8)=1 ELSE P(I,8)=0
- 380 NEXT I
- 390 FOR II=1 TO 8
- 400 FOR DD=1 TO D
- 410 LPRINT SPACE$((3-D)*12);
- 420 FOR III=8 TO 1 STEP -1
- 430 IF P(III,II)>0 THEN LPRINT AA$; ELSE LPRINT SPACE$(3*D);
- 440 NEXT III
- 450 LPRINT:NEXT DD
- 460 NEXT II
- 470 LPRINT:GOTO 200
- 480 PRINT:PRINT"end of BANNER PROGRAM":PRINT:END
-